/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controlador.Service.Compras;

import Controlador.Bean.Almacen.Producto;
import Controlador.Bean.Compras.CatalogoData;
import Controlador.Bean.Compras.ProductoxProveedor;
import Controlador.Bean.Compras.ProvxProd;
import Controlador.Bean.Log.Log;
import Data.config.SessionFac;
import gui.General.Main;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import org.apache.ibatis.session.SqlSession;

/**
 *
 * @author LiziTa
 */
public class ServicioProductoxProveedor {
    
    
        java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date fecha= new Date();
        String f=sdf.format(fecha);
        
      public List<Producto> seleccionarMatPrima(){
                    
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
         List<Producto> data = (List)sqlsession.selectList("Data.Compras.ServicioProductoxProveedor.seleccionarMatPrima");
        sqlsession.close();
       
              return data;
    }
   }
 
      public List<ProductoxProveedor> seleccionarProductosdeProveedor(String id){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
        List<ProductoxProveedor> data = (List)sqlsession.selectList("Data.Compras.ServicioProductoxProveedor.seleccionarProductosdeProveedor",id);
        sqlsession.close();
         Log.setInstancia(Main.usu.getIdEmpleadoAdm(),"CMPCATPR","Seleccionar productos por proveedor",f );
        return data; 
       
    }
    }
      
      
         public List<ProductoxProveedor> seleccionarProd(String id){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
        List<ProductoxProveedor> data = (List)sqlsession.selectList("Data.Compras.ServicioProductoxProveedor.seleccionarProd",id);
        sqlsession.close();
        return data; 
       
    }
    }
      
      
      public List<ProductoxProveedor> seleccionarTodo(String id,String idproducto){
        
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
          HashMap<String, String> hm = new HashMap<>();
          hm.put("id", "%"+id+"%");
          hm.put("idproducto", "%"+idproducto+"%");
        List<ProductoxProveedor> data = (List)sqlsession.selectList("Data.Compras.ServicioProductoxProveedor.seleccionarTodo", hm);
        sqlsession.close();
        return data; }
         
    }
    
    
    public List<ProvxProd> seleccionarProvxProd(String prov){
         try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
          HashMap<String, String> hm = new HashMap<>();
          hm.put("id", "%"+prov+"%");
          List<ProvxProd> data = (List)sqlsession.selectList("Data.Compras.ServicioProductoxProveedor.seleccionarProvxProd", prov);
        sqlsession.close();
        return data; }
    }
    
    
    
      public void guardar(ProductoxProveedor productoxOrden){
         try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()){
        sqlsession.insert("Data.Compras.ServicioProductoxProveedor.guardar",productoxOrden);
       sqlsession.commit();
        sqlsession.close();
            
    }
    }   
      
     public void guardar(ArrayList<String> codProveedores, SqlSession sqlsession){         
        sqlsession.insert("Data.Compras.ServicioProductoxProveedor.guardarM",codProveedores);           
    }  
      
      public void eliminar(String id,String idproducto){
       try(SqlSession sqlsession= SessionFac.SessionFactory().openSession()){
         HashMap<String, String> hm = new HashMap<>();
        //if(id!=null) 
            hm.put("id", "%"+id+"%");
        //if(razonsocial!=null) 
            hm.put("idproducto", "%"+idproducto+"%");
        sqlsession.update("Data.Compras.ServicioProductoxProveedor.eliminar", hm);
         sqlsession.commit();
        sqlsession.close();
         Log.setInstancia(Main.usu.getIdEmpleadoAdm(),"CMPCATPR","Eliminar productos por proveedor",f );
         }
        catch(Exception ex){
            ex.printStackTrace();
        }
    }
      
        public void actualizar(ProductoxProveedor p,String id, String prov){
        try(SqlSession sqlsession= SessionFac.SessionFactory().openSession()){
             HashMap<String, Object> hm = new HashMap<>();
             hm.put("factorcalidad",p.getFactorcalidad());
              hm.put("IdProducto",p.getIdProducto());
               hm.put("IdProveedor",p.getIdProveedor());
                hm.put("Leadtime",p.getLeadtime());
                 hm.put("preciobase",p.getPreciobase());
             hm.put("id",id);
               hm.put("prov",prov);
         sqlsession.update("Data.Compras.ServicioProductoxProveedor.actualizar", hm);
        sqlsession.commit();
        sqlsession.close();
         Log.setInstancia(Main.usu.getIdEmpleadoAdm(),"CMPCATPR","Actualizar productos por proveedor",f );
    }
        catch(Exception ex){
            ex.printStackTrace();
        }
      }
                
        public List<CatalogoData> filtrarProdxProv(String id, String prod){
       try(SqlSession sqlsession= SessionFac.SessionFactory().openSession()){
        HashMap<String, String> hm = new HashMap<>();
        //if(id!=null) 
            hm.put("id", "%"+id+"%");
        //if(razonsocial!=null) 
            hm.put("idproducto", "%"+prod+"%");
        List<CatalogoData> data = (List)sqlsession.selectList("Data.Compras.ServicioProductoxProveedor.filtrarProdxProv", hm);
        sqlsession.close();
        return data;
    }
    
    
}
        }

       
